웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > html

[CSS] position 속성이 absolute인 경우 상위 레이어 또는 전체 윈도우 기준 정렬방법

Last Modified : 2015-10-30 / Created : 2014-03-24
22,724
View Count
안녕하세요. position 속성이 absolute인 경우 정렬을 맞추는 방법입니다.
해당 요소의 position이 absolute일때 정렬하는 방법은 relative와는 다른 방법을 사용해야 합니다. absolute일 경우의 특징을 고려해서 레이아웃을 설정해야 하는데요...


1. position 속성이 absolute?


; absolute 속성이 되는 경우 주변의 다른 레이어 객체들과 상관하지 않은채 정렬이 가능하게 됩니다. 예를 들어 position이 relative인 경우는 다른 요소들을 고려해 정렬을 맞추어야 합니다. 앞 또는 뒤에 위치한 요소에 영향을 받기 때문이죠. 하지만 absolute의 경우는 다른 요소에 영향을 주지 않아 겹쳐지거나 화면 밖으로 이동하는 등 독립적인 레이아웃이 가능하게 되죠. 그리고 absolute로 설정한 경우 정렬 기준은 다음과 같이 두 가지가 됩니다.

1) 전체 윈도우를 기준으로 정렬
2) 바로 상위 레이어를 기준으로 정렬

attritube explanation screenshot

1번은 브라우저 창 전체를 기준으로 정렬이 가능하다는 의미이구요... 2번은 바로 상위 레이어를 기준으로 정렬함을 의미합니다. 전체창을 기준으로 레이아웃을 설정하는 다른 값은 position: fixed가 있습니다. fixed로 설정하게 되면 스크롤을 이동해도 사용자가 보게되는 화면의 절대적인 값을 가지기 때문에 해당 레이어가 움직이지 않는 것이 차이점이라 하겠습니다.

2. position: absolute 정렬 방법


1) 전체 윈도우를 기준으로 정렬을 원하는 경우


; 해당 레이어를 이동할 때 top, bottom, left, right 속성을 이용합니다. 이럴 경우 전체 윈도우를 기준으로 해당레이어가 이동하게 됩니다.


.test {
position: absolute;
left: 10px;
right: 0;
top: 10px;
bottom: 0;
}
// 전체 윈도우에서 상단과 좌측을 기준으로 10px씩 이동


2) 바로 한단계 상위 레이어를 기준으로 정렬하는 방법


; 이 때는 선택된 레이어가 top, bottom, left, right 속성을 가져서는 안됩니다. 그렇게 되면 전체 윈도우를 기준으로 정렬되기 때문에 margin값을 사용하여 레이어를 이동해야만 가능합니다.


.test {
position: absolute;
margin-top: 10px;
margin-left: 10px;
}
// 한단계 상위 요소를 기준으로 상단과 좌측에서 10px씩 이동


하지만, 상위 레이어를 기준으로 정렬할 때 left, right, top, bottom을 사용할 수 있는 방법이 있습니다... 그렇게 하려면 부모 요소의 position 속성에 relative 값을 추가해주면 가능합니다.


.test_parent {
position: relative;
}
// 부모 요소의 position 속성을 설정해 left, right, top, bottom 속성으로 접근이 가능


이 둘의 차이점을 이해하면 레이아웃을 구성하는데 많은 도움이 되실 것 같습니다 :)
아래의 글도 찾고 계시지 않나요?

    Previous

    [HTML5] Mark tag를 사용하기, highlighted or marked text

    Previous

    [HTML] 라디오 버튼(radio button) 만들기, 선택방법